package represent.type;

/**
 * The interface that denotes values stored in the database.
 * @author Edward Sciore
 */
public interface Type extends Comparable<Type> {

	/**
	 * Returns the Java object corresponding to this constant.
	 * @return the Java value of the constant
	 */
	public Object  asJavaVal();

	public String getType();

	public Type plus(Type c);

	public Type minus(Type c);

	public Type mult(Type c);

	public Type divide(Type c);

	public Type mod(Type c);
	
	public boolean equals(Object o);
	
	/**
	 * return 1 if this object is larger
	 * return 0 if equal
	 * return -1 if "c" is larger
	 */
	public int compareTo(Type c);
	
//	public int compare(byte[] a, byte[] b);
	
//	public Type fromBytes(byte[] bytes);

	public int TypeToInt();
	
}

